package com.hahaliu.hahaliu.service.video;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hahaliu.hahaliu.pojo.entity.FavoriteVideo;

import java.util.Set;

/**
* @author Liubuzhu
* @description 针对表【favorite_video】的数据库操作Service
* @createDate 2024-06-13 08:30:24
*/
public interface FavoriteVideoService extends IService<FavoriteVideo> {

	/**
	 * 提取某用户的全部收藏夹信息的FID整合成集合
	 * @param uid   用户ID
	 * @return  fid集合
	 */
	Set<Integer> findFidsOfUserFavorites(Integer uid);

	/**
	 * 查询提供的收藏夹Id列表中哪些收藏指定视频
	 * @param vid   视频ID
	 * @param fids   收藏夹ID列表
	 * @return  已收藏该视频的收藏夹ID集合
	 */
	Set<Integer> findFidsOfCollected(Integer vid, Set<Integer> fids);

	/**
	 * 将视频添加到多个收藏夹
	 * @param vid   视频ID
	 * @param fids  需要添加的收藏夹ID集合
	 */
	void addToFavorite(Integer uid, Integer vid, Set<Integer> fids);

	/**
	 * 将视频从多个收藏夹中移出
	 * @param vid   视频ID
	 * @param fids  需要移出的收藏夹ID集合
	 */
	void removeFromFavorite(Integer uid, Integer vid, Set<Integer> fids);

}
